
function sign(datas) {
  if(datas === '' || datas === undefined) {
    throw new Error('签名参数不能为空')
  }
  return CryptoJS.SHA1(getSignData(datas)).toString(CryptoJS.enc.Hex).toUpperCase()
}

function setSignData(data) {
  var datas = {}
  datas.sign = ''
  if(data === '' || data === undefined) {
    datas.data = {}
  } else {
    datas.data = data
  }
  datas.source = Date.now().toString()
  datas.version = '0.01'
  return datas
}


/* 
对签名参数 进行转换
*/
function getSignData(datas) {
  var newDatas = []
  if(JSON.stringify(datas.data) !== '{}') {
    for(var key in datas.data) {
      newDatas.push(key.toString()+'='+datas.data[key].toString())
    }
  }
  newDatas.push('version'+'='+datas.version.toString())
  newDatas.push('source'+'='+datas.source.toString())
  // console.log(newDatas) 
  // console.log(newDatas.sort())
  // console.log(newDatas.sort().join('&'))
  return newDatas.sort().join('&')
}